/* eslint-disable no-irregular-whitespace */
import axios from "axios";
// import Vue from 'vue'
// import store from '@/store'  // 我此项目没有用到vuex，所以vuex代码的都注释了，需要的自己打开使用

// import {ACCESS_TOKEN} from '@/store/mutation-types'

// 创建 axios 实例
const requests = axios.create({
  baseURL: process.env.VUE_APP_API, // 基础url,如果是多环境配置这样写，也可以像下面一行的写死。 // baseURL: 'http://168.192.0.123',
  timeout: 5000, // 请求超时时间
});

// 错误处理函数
const err = (error) => {
  if (error.response) {
    const data = error.response.data; // const token = Vue.ls.get(ACCESS_TOKEN)
    if (error.response.status === 403) {
      this.$message({
        message: data.message || data.msg,
        type: "warning",
      });
    }
    if (error.response.status === 401) {
      // if (token) { //   store.dispatch('Logout').then(() => { //     setTimeout(() => { //       window.location.reload() //     }, 1500) //   }) // }
      this.$message({
        message: "你没有权限。",
        type: "warning",
      });
    }
  }
  return Promise.reject(error);
};

//requestinterceptor(请求拦截器)
requests.interceptors.request.use((config) => {
  //   const token = Vue.ls.get(ACCESS_TOKEN)
  const token = localStorage.getItem("token");
  if (token) {
    config.headers["token"] = token; //让每个请求携带自定义token 请根据实际情况自行修改
  }
  return config;
}, err);

// response interceptor（接收拦截器）
requests.interceptors.response.use((response) => {
  const res = response.data;
  if (res.code !== 0 && res.code !== 200) {
    // 401:未登录;
    this.$message({
      message: res.message || res.msg,
      type: "warning",
    });
    if (res.code === 401 || res.code === 403 || res.code === 999) {
      this.$message("请登录");
    }
    return Promise.reject("error");
  } else {
    return res;
  }
}, err);

export default {
  requests,
};
